home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1995 June / MacFormat 25.iso / Shareware City / Developers / ICProgKit1.0 / Source / ICGluePPC / ICPPCGlue.c < prev   
C/C++ Source or Header  |  1994-11-29  |  7KB  |  326 lines

  1. #include <Types.h>
  2. #include <MixedMode.h>
  3. #include <GestaltEqu.h>
  4. #include <Components.h>
  5.  
  6. #include "ICTypes.h"
  7. #include "ICCAPI.h"
  8.  
  9. #pragma options align=mac68k
  10.  
  11. enum {
  12.     uppCallComponentProcInfo = kPascalStackBased
  13.         | RESULT_SIZE(kFourByteCode)
  14.         | STACK_ROUTINE_PARAMETER(1, kFourByteCode)
  15. };
  16.  
  17.  
  18. pascal ICError ICStart(ICInstance *inst, OSType creator)
  19. {
  20.     ICError junk;
  21.     ICError err;
  22.     long response;
  23.     struct {
  24.         char flags;
  25.         char size;
  26.         short what;
  27.         //
  28.         OSType creator;
  29.         //
  30.         ICInstance inst;
  31.     } start_component_params;
  32.     
  33.     *inst = nil;
  34.     if (Gestalt(gestaltComponentMgr, &response) == noErr) {
  35.         *inst = (ICInstance) OpenDefaultComponent(internetConfigurationComponentType, internetConfigurationComponentSubType);
  36.     };
  37.     if (*inst == nil) {
  38.         err = badComponentInstance;
  39.     } else {
  40.         start_component_params.flags = 0;
  41.         start_component_params.size = 4;
  42.         start_component_params.what = 0;
  43.         start_component_params.creator = creator;
  44.         start_component_params.inst = *inst;
  45.         err = CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &start_component_params);
  46.         if (err != noErr) {
  47.             junk = CloseComponent((ComponentInstance) *inst);
  48.             *inst = nil;
  49.         };
  50.     };
  51.     return(err);
  52. }
  53.  
  54. pascal ICError ICStop(ICInstance inst)
  55. {
  56.     ICError err;
  57.     ICError err2;
  58.     struct {
  59.         char flags;
  60.         char size;
  61.         short what;
  62.         //
  63.         //
  64.         ICInstance inst;
  65.     } stop_component_params;
  66.     
  67.     stop_component_params.flags = 0;
  68.     stop_component_params.size = 0;
  69.     stop_component_params.what = 1;
  70.     stop_component_params.inst = inst;
  71.     err = CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &stop_component_params);
  72.     err2 = CloseComponent((ComponentInstance) inst);
  73.     if (err == noErr) {
  74.         err = err2;
  75.     };
  76.     return(err);
  77. }
  78.  
  79. pascal ICError ICFindConfigFile(ICInstance inst, short count, ICDirSpecArrayPtr folders)
  80. {
  81.     struct {
  82.         char flags;
  83.         char size;
  84.         short what;
  85.         //
  86.         ICDirSpecArrayPtr folders;
  87.         short count;
  88.         //
  89.         ICInstance inst;
  90.     } find_config_file_params;
  91.     
  92.     find_config_file_params.flags = 0;
  93.     find_config_file_params.size = 6;
  94.     find_config_file_params.what = 2;
  95.     find_config_file_params.folders = folders;
  96.     find_config_file_params.count = count;
  97.     find_config_file_params.inst = inst;
  98.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &find_config_file_params));
  99. }
  100.  
  101. pascal ICError ICSpecifyConfigFile(ICInstance inst, FSSpec *config)
  102. {
  103.     struct {
  104.         char flags;
  105.         char size;
  106.         short what;
  107.         //
  108.         FSSpec *config;
  109.         //
  110.         ICInstance inst;
  111.     } specify_config_file_params;
  112.     
  113.     specify_config_file_params.flags = 0;
  114.     specify_config_file_params.size = 4;
  115.     specify_config_file_params.what = 3;
  116.     specify_config_file_params.config = config;
  117.     specify_config_file_params.inst = inst;
  118.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &specify_config_file_params));
  119. }
  120.  
  121. pascal ICError ICGetSeed(ICInstance inst, long *seed)
  122. {
  123.     struct {
  124.         char flags;
  125.         char size;
  126.         short what;
  127.         //
  128.         long *seed;
  129.         //
  130.         ICInstance inst;
  131.     } get_seed_params;
  132.     
  133.     get_seed_params.flags = 0;
  134.     get_seed_params.size = 4;
  135.     get_seed_params.what = 4;
  136.     get_seed_params.seed = seed;
  137.     get_seed_params.inst = inst;
  138.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &get_seed_params));
  139. }
  140.  
  141. pascal ICError ICBegin(ICInstance inst, ICPerm perm)
  142. {
  143.     struct {
  144.         char flags;
  145.         char size;
  146.         short what;
  147.         //
  148.         ICPerm perm;
  149.         //
  150.         ICInstance inst;
  151.     } begin_params;
  152.     
  153.     begin_params.flags = 0;
  154.     begin_params.size = 2;
  155.     begin_params.what = 5;
  156.     begin_params.perm = perm;
  157.     begin_params.inst = inst;
  158.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &begin_params));
  159. }
  160.  
  161. pascal ICError ICGetPref(ICInstance inst, ConstStr255Param key, ICAttr *attr, Ptr buf, long *size)
  162. {
  163.     struct {
  164.         char flags;
  165.         char size;
  166.         short what;
  167.         //
  168.         long *psize;
  169.         Ptr buf;
  170.         ICAttr *attr;
  171.         Str255 *key;
  172.         //
  173.         ICInstance inst;
  174.     } get_pref_params;
  175.     
  176.     get_pref_params.flags = 0;
  177.     get_pref_params.size = 16;
  178.     get_pref_params.what = 6;
  179.     //
  180.     get_pref_params.psize = size;
  181.     get_pref_params.buf = buf;
  182.     get_pref_params.attr = attr;
  183.     get_pref_params.key = (Str255 *) key;
  184.     //
  185.     get_pref_params.inst = inst;
  186.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &get_pref_params));
  187. }
  188.  
  189. pascal ICError ICSetPref(ICInstance inst, ConstStr255Param key, ICAttr attr, Ptr buf, long size)
  190. {
  191.     struct {
  192.         char flags;
  193.         char size;
  194.         short what;
  195.         //
  196.         long psize;
  197.         Ptr buf;
  198.         ICAttr attr;
  199.         Str255 *key;
  200.         //
  201.         ICInstance inst;
  202.     } set_pref_params;
  203.     
  204.     set_pref_params.flags = 0;
  205.     set_pref_params.size = 16;
  206.     set_pref_params.what = 7;
  207.     //
  208.     set_pref_params.psize = size;
  209.     set_pref_params.buf = buf;
  210.     set_pref_params.attr = attr;
  211.     set_pref_params.key = (Str255 *) key;
  212.     //
  213.     set_pref_params.inst = inst;
  214.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &set_pref_params));
  215. }
  216.  
  217. pascal ICError ICCountPref(ICInstance inst, long *count)
  218. {
  219.     struct {
  220.         char flags;
  221.         char size;
  222.         short what;
  223.         //
  224.         long *count;
  225.         //
  226.         ICInstance inst;
  227.     } count_pref_params;
  228.     
  229.     count_pref_params.flags = 0;
  230.     count_pref_params.size = 4;
  231.     count_pref_params.what = 8;
  232.     count_pref_params.count = count;
  233.     count_pref_params.inst = inst;
  234.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &count_pref_params));
  235. }
  236.  
  237. pascal ICError ICGetIndPref(ICInstance inst, long n, Str255 key)
  238. {
  239.     struct {
  240.         char flags;
  241.         char size;
  242.         short what;
  243.         //
  244.         StringPtr key;
  245.         long n;
  246.         //
  247.         ICInstance inst;
  248.     } get_ind_pref_params;
  249.     
  250.     get_ind_pref_params.flags = 0;
  251.     get_ind_pref_params.size = 8;
  252.     get_ind_pref_params.what = 9;
  253.     //
  254.     get_ind_pref_params.key = (StringPtr) key;
  255.     get_ind_pref_params.n = n;
  256.     //
  257.     get_ind_pref_params.inst = inst;
  258.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &get_ind_pref_params));
  259. }
  260.  
  261. pascal ICError ICDeletePref(ICInstance inst, ConstStr255Param key)
  262. {
  263.     struct {
  264.         char flags;
  265.         char size;
  266.         short what;
  267.         //
  268.         Str255 *key;
  269.         //
  270.         ICInstance inst;
  271.     } delete_pref_params;
  272.     
  273.     delete_pref_params.flags = 0;
  274.     delete_pref_params.size = 4;
  275.     delete_pref_params.what = 12;
  276.     //
  277.     delete_pref_params.key = (Str255 *) key;
  278.     //
  279.     delete_pref_params.inst = inst;
  280.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &delete_pref_params));
  281. }
  282.  
  283. pascal ICError ICEnd(ICInstance inst)
  284. {
  285.     struct {
  286.         char flags;
  287.         char size;
  288.         short what;
  289.         //
  290.         //
  291.         ICInstance inst;
  292.     } end_params;
  293.     
  294.     end_params.flags = 0;
  295.     end_params.size = 0;
  296.     end_params.what = 10;
  297.     //
  298.     end_params.inst = inst;
  299.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &end_params));
  300. }
  301.  
  302. pascal ICError ICDefaultFileName(ICInstance inst, Str63 name)
  303. {
  304.     struct {
  305.         char flags;
  306.         char size;
  307.         short what;
  308.         //
  309.         StringPtr name;
  310.         //
  311.         ICInstance inst;
  312.     } default_file_name_params;
  313.     
  314.     default_file_name_params.flags = 0;
  315.     default_file_name_params.size = 4;
  316.     default_file_name_params.what = 11;
  317.     default_file_name_params.name = (StringPtr) name;
  318.     default_file_name_params.inst = inst;
  319.     return(CallUniversalProc(CallComponentUPP, uppCallComponentProcInfo, &default_file_name_params));
  320. }
  321.  
  322. pascal ICError ICGetComponentInstance(ICInstance inst, Ptr *component_inst)
  323. {
  324.     *component_inst = inst;
  325. }
  326.